package com.hxkj.mapper;

import com.hxkj.domain.po.Site;
import com.platform.common.domain.annotation.EnableDataSource;
import org.springframework.stereotype.Repository;
import java.util.List;

/**
* 数据库操作接口
*
* @author: chenwei
* @version: 1.0
* @datetime: 2018-05-21 17:59:26
*
*/
@Repository("siteMapper")
public interface SiteMapper {

    /**
     * 根据主键查询Site对象
     *
     * @param siteId
     * @return Site对象
     */
    @EnableDataSource("slave")
    Site selectByPrimaryKey(Long siteId);

    /**
     * 根据SiteName查询Site对象
     *
     * @param site
     * @return Site对象
     */
    @EnableDataSource("slave")
    Site selectSiteName(Site site);

    /**
     * 根据查询条件查询符合条件的Site对象
     *
     * @param site
     * @return 符合条件的Site对象List
     */
    @EnableDataSource("slave")
    List<Site> select(Site site);

    /**
     * 根据主键删除Site对象
     *
     * @param siteId
     * @return 影响条件数
     */
    @EnableDataSource("master")
    int deleteByPrimaryKey(Long siteId);

    /**
     * 根据条件删除符合条件的Site对象
     *
     * @param site
     * @return 影响条件数
     */
    @EnableDataSource("master")
    int delete(Site site);

    /**
     * 插入Site对象
     *
     * @param site
     * @return 影响条件数
     */
    @EnableDataSource("master")
    int insert(Site site);

    /**
     * 更新Site对象
     *
     * @param site
     * @return 影响条件数
     */
    @EnableDataSource("master")
    int update(Site site);

    /**
     * @return java.util.List<com.hxkj.domain.po.Site>
     * @author Mr.zheng
     * @Description getAassignedSite 查询用户所能管理的站点
     * @Date 10:44 2018/5/22
     * @Param [uid]  用户ID
     **/
    @EnableDataSource("slave")
    List<Site> getAassignedSite(Long uid);

    /**
     * @return java.util.List<com.hxkj.domain.po.Site>
     * @author Mr.zhu
     * @Description getSiteByUserId  根据 userId 查询登录用户可查看的站点信息
     * @Date 10:44 2018/5/30
     * @Param [site]  站点
     **/
    @EnableDataSource("slave")
    List<Site> getSiteByUserId(Site site);


    /**
     * 查询角色超级管理员所有站点
     *
     * @param site
     * @return
     */
    List<Site> getList(Site site);

    /**
     * 查询角色超级管理员所有站点
     *
     * @param site
     * @return 符合条件的Site对象List
     */
    List<Site> getSiteList(Site site);

    /**
     * 查询站点切换列表
     *
     * @param site
     * @return 符合条件的Site对象List
     */
    List<Site> getSwitcherSiteList(Site site);

    /**
     * @return java.util.List<com.hxkj.domain.po.Site>
     * @author Mr.zhu
     * @Description getSiteByUserId  根据 userId 查询登录用户可切换的站点信息
     * @Date 10:44 2018/5/30
     * @Param [site]  站点
     **/
    List<Site> getSwitcherByUserId(Site site);

    /**
     * @return com.hxkj.domain.po.Site
     * @author Mr.zheng
     * @Description getSiteById 根据站点ID获取站点信息
     * @Date 17:05 2018/6/14
     * @Param [siteId]
     **/
    Site getSiteById(Long siteId);

    /**
    * @author Mr.zheng
    * @Description getShowSiteList 获取启用状态的所有站点
    * @Date 16:07 2018/6/21
    * @Param [site]
    * @return java.util.List<com.hxkj.domain.po.Site>
    **/
    List<Site> getShowSiteList(Site site);

    /**
    * @author Mr.zheng
    * @Description getCountSite 根据站点ID查看该站点是否存在或被停用
    * @Date 17:51 2018/6/21
    * @Param [siteId]
    * @return int
    **/
    int getCountSite(Long siteId);

    /**
     * 根据站点ID获取站点LOGO
     * @param siteId
     * @return
     */
    String getSiteLogo(Long siteId);

    /**
     * 站点信息包括站点的类型名称
     *
     * @param site
     * @return 符合条件的Site对象List
     */
    @EnableDataSource("slave")
    List<Site> getSiteInfoList(Site site);
}
